package com.vegetable.modules.mapper.finance;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.vegetable.modules.finance.entity.AgentDeliveryEntity;
import com.vegetable.modules.vo.finance.ArrearsDetailVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.List;

/**
 * 代办采购单Mapper
 */
@Mapper
public interface FinanceAgentDeliveryMapper extends BaseMapper<AgentDeliveryEntity> {
    
    /**
     * 计算代办欠款金额
     * @param agentId 代办人ID
     * @param regionId 地域标志
     * @return 欠款金额
     */
    BigDecimal calculateAgentArrears(@Param("agentId") Long agentId, @Param("regionId") Integer regionId);
    
    /**
     * 计算代办未打款金额
     * @param agentId 代办人ID
     * @param regionId 地域标志
     * @return 未打款金额
     */
    BigDecimal calculateAgentUnpaid(@Param("agentId") Long agentId, @Param("regionId") Integer regionId);
    
    /**
     * 计算代办未对账金额
     * @param agentId 代办人ID
     * @param regionId 地域标志
     * @return 未对账金额
     */
    BigDecimal calculateAgentUnreconciled(@Param("agentId") Long agentId, @Param("regionId") Integer regionId);
    
    /**
     * 查询代办未打款明细列表
     * @param regionId 地域标志
     * @return 代办未打款明细列表
     */
    List<ArrearsDetailVO> getAgentArrearsDetailList(@Param("regionId") Integer regionId);
}